草庐IT

sql - 为 Postgres 9 安装 DBLink

全部标签

postgresql - 扫描 Postgres 复合类型

我定义了一个复合类型用于表中:CREATETYPEdurationAS(hoursNUMERIC,minutesNUMERIC);CREATETABLEfoo(idSERIALPRIMARYKEY,my_durationduration);INSERTINTOfoo(id,my_duration)VALUES(1,ROW(1,30));如何使用database/sql扫描它?当我用实现扫描仪接口(interface)时func(d*Duration)Scan(valueinterface{})error{log.Println(value)ifvalue==nil{*d=Duratio

postgresql - Postgres : Optimising concurrent same row updates

问题我正在使用PostgreSQLv10+golang,我认为这是一个非常常见的SQL问题:我有一个“计数器”表,它有一个current_value和一个max_value整数列。严格来说,一旦current_value>=max_value,我想放弃请求。我有几个Kubernetespod,每个API调用可能会将“计数器”表中同一行(在最坏情况下)的current_value增加1(可以被认为是分布式主机对同一数据库的并发更新)。在我当前和天真的实现中,对同一行的多个更新自然会相互阻塞(如果重要的话,隔离级别是“已提交读”)。在最坏的情况下,我每秒有大约10多个请求会更新同一行。这会

go - 尝试安装 gonum 时如何处理 "import cycle not allowed"?

我想使用gonum库来试验一些神经网络的东西,但我无法通过安装过程...我正在运行官方gonum网站上的命令:goget-u-tgonum.org/v1/gonum/...但它给了我:importcyclenotallowedpackagegonum.org/v1/gonumimportsruntimeimportsinternal/bytealgimportsinternal/cpuimportsruntime您知道造成此类问题的原因是什么吗?如果你需要我的goenv来帮助我,这里是:GOARCH="amd64"GOBIN=""GOEXE=""GOHOSTARCH="amd64"GO

从本地 fork 获取安装

我正在尝试从本地目录安装一个go包(基本上我检查了现有包并应用了一个挂起的拉取请求)。$#Bothcommandsgiveasimilaroutput$goget-ufile:///Users/me/workspaces/go/somepackage$goget-u/Users/me/workspaces/go/somepackageunrecognizedimportpath"[...]"(importpathdoesnotbeginwithhostname)由于goget正在下载然后安装,我试过:$goinstall/Users/me/workspaces/go/somepacka

postgresql - GoLang 服务无法使用 docker compose 访问 Postgres

我有一个用Go编写的HTML服务。它使用Postgres,但是当使用dockercompose将它们组合在一起时,我得到“dialtcp0.0.0.0:5432:connect:connectionrefused”在仅使用docker并引用Postgres的运行图像构建启动服务时工作来自go的调用片段psqlInfo:=fmt.Sprintf("host=%sport=%suser=%spassword=%sdbname=%ssslmode=disable",host,port,user,password,dbname)db,err:=sql.Open("postgres",psqlI

sql - 在插入或更新时返回数据时,我还需要使用 `Exec` 吗?

根据GoDatabaseSQL,它说要使用Exec来修改数据,而Query是错误的,因为在调用Rows.Close()之前底层连接一直保持打开状态.但是,我能想到两种情况,询问正确的模式是什么。1)使用sql.Tx进行多次更新,这将保持连接直到Tx.Rollback或Tx.Commit。在这种情况下,这重要吗?2)在更新、插入或删除时返回数据(尤其是在使用非基于整数的行ID时,如UUID)。在这种情况下,QueryRow似乎是合适的,尤其是因为它返回的Row没有Close只是Scan.然而,一个Tx可以打开写入然后立即读取,但这通常是很多额外的工作。我是否遗漏了这两个案例?我使用的是P

sql - 如果未找到行,QueryRow().Scan() 将返回错误。怎么解决?

我花了很多时间试图解决这个问题。我有一个结构:typeTokenstruct{Id*int64`db:"id"`Email*string`db:"email"`OperationType*string`db:"operation_type"`Token*string`db:"token"`ExpirationDate*time.Time`db:"expiration_date"`}我有一个通过电子邮件找到一个token的函数:func(rRepo2)FindOneByEmail(ctxcontext.Context,emailstring,ct*Token)error{row:=r.D

sql - 删除用于测试套件的所有数据库记录的最佳方法是什么?

我有一个测试套件使用从YAML文件读取的种子污染我的数据库。我想知道是否有一种方法可以在运行测试后清理我的数据库(删除用于测试套件的所有记录)。//OpendbandreturnspointerandcloserfuncfuncprepareMySQLDB(t*testing.T)(db*sql.DB,closerfunc()error){db,err:=sql.Open("mysql","user:pass@/database")iferr!=nil{t.Fatalf("openmysqlconnection:%s",err)}returndb,db.Close}//Pollutem

postgresql - GORM 数据库中的自动迁移将不需要的字段添加到 SQL 表

当我在gorm数据库中创建表时,它向表中添加了我不需要的列。我不确定它是如何添加这些额外字段的。这导致我遇到一个错误,“pq:列“user_id”中的空值违反了非空约束”。“user_id”是添加的不需要的列。我正在使用gorm和postgreSQL。我的两个表之间存在多对多关系。我的第一个表已正确创建,第二个表stores是使用提供的字段加上两个不需要的字段创建的:“user_id”和“stores_id”。我尝试删除多对多关系以查看是否是问题所在,我尝试删除表并使用不同的字段重新创建它们。无论如何,我都无法摆脱这两个额外的列。第一个(工作)表:typeUserstruct{gorm

sql - 如何限制gorm预加载的结果

typeItemstruct{TopicIdint`json:"topic_id"`Topic*Topic`json:"topic,omitempty"`BotIdint`json:"bot_id"`URLstring`gorm:"varchar(250);unique"json:"url"`Titlestring`gorm:"varchar(250)"json:"title"`}typeTopicstruct{Titlestring`gorm:"varchar(250)"json:"title"`Items[]*Item`json:"items,omitempty"`}这是两个模型。